home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-09-17 | 6.3 KB | 250 lines |
- 10 KEY OFF:SCREEN 0:WIDTH 80
- 20 X=4500:CLS:PRINT:PRINT
- 30 RANDOMIZE TIMER
- 290 Z1=1000
- 300 Z2=1000
- 310 Z3=1000
- 320 Z4=1000
- 330 R=R+1
- 335 P=INT(RND*3)+1:P1=INT(RND*4)+9:C=INT(RND*2):IF C=0 THEN S=P ELSE S=P1
- 340 W1=0
- 350 X2=0
- 360 W3=0
- 370 W4=0
- 380 T=0
- 390 A1=0
- 400 A=0
- 410 V1=RND(1)
- 420 V=V1*1000
- 430 IF V<300 OR V>900 THEN 410
- 440 Y1=RND(1)
- 450 Y=Y1*500
- 460 IF Y<100 THEN 440
- 470 X=4500
- 480 PRINT" "
- 490 PRINT" "
- 500 E=X/V
- 510 PRINTTAB(30)"**INITIAL**"
- 520 PRINTTAB(30)"***STATS***"
- 530 GOTO 1430
- 540 W1=0
- 550 W2=0
- 560 W3=0
- 570 W4=0
- 580 PRINT" "
- 590 PRINT"BOMB COMMAND";
- 600 INPUT C$
- 610 IF C$="STAND BY"THEN 640
- 620 IF C$="DROP"THEN 1680
- 630 PRINT"UNRECOGNIZABLE COMMAND. REPLY `STAND BY' OR `DROP'.":GOTO 590
- 640 PRINT"STANDING BY."
- 650 PRINT" "
- 660 GOTO 700
- 670 A=A-1
- 680 T=T-1
- 690 GOTO 770
- 700 PRINT"MAINTAIN PRESENT RESULANT ANGLE";
- 710 INPUT P$
- 720 PRINT" "
- 730 IF P$="YES"OR P$="Y"THEN 1130
- 740 IF P$="NO" OR P$="N"THEN 770
- 750 PRINT"REPLY `YES' OR `NO'.";
- 760 GOTO 710
- 770 PRINT"`CLIMB/DIVE' COMMAND";
- 780 INPUT A$,A1
- 790 PRINT" "
- 800 IF A1<0 THEN 830
- 810 IF A1>15 THEN 870
- 820 GOTO 930
- 830 PRINT"ANGLE INPUT MUST BE POSITIVE. IF NECESSARY, CHANGE THE"
- 840 PRINT"`DIVE' COMMAND TO `CLIMB', OR VICE VERSA."
- 850 PRINT" "
- 860 GOTO 770
- 870 W1=W1+1
- 880 IF W1=2 THEN 2120
- 890 PRINT"YOUR BOMBER CANNOT TOLERATE THE STRESS CAUSED BY ANGLE"
- 900 PRINT"INPUTS EXCEEDING 15 DEGREES. RECONSIDER YOUR CHOICE."
- 910 PRINT" "
- 920 GOTO 770
- 930 IF A$="CLIMB"THEN 950
- 940 A1=-A1
- 950 A=A+A1
- 960 IF A<-60 THEN 990
- 970 IF A>60 THEN 1060
- 980 GOTO 1140
- 990 W2=W2+1
- 1000 IF W2=2 THEN 2170
- 1010 PRINT"YOUR PRESENT `DIVE' COMMAND WILL EXCEED THE MAXIMUM RE-"
- 1020 PRINT"SULTANT DIVE ANGLE OF 60 DEGREES, CAUSING AN IRREVERSIBLE"
- 1030 PRINT"NOSEDIVE. RECONSIDER YOUR CHOICE."
- 1040 PRINT" "
- 1050 GOTO 670
- 1060 W3=W3+1
- 1070 IF W3=2 THEN 2210
- 1080 PRINT"YOUR PRESENT `CLIMB' COMMAND WILL EXCEED THE MAXIMUM RE-"
- 1090 PRINT"SULTANT CLIMB ANGLE OF 60 DEGREES, CAUSING YOUR"
- 1100 PRINT"ENGINGES TO FAIL AND YOUR PLANE TO CRASH. RECONSIDER YOUR"
- 1110 PRINT"CHOICE":PRINT" "
- 1120 GOTO 670
- 1130 '
- 1140 PRINT"AIRSPEED";
- 1150 INPUT V
- 1160 IF V>900 THEN 1190
- 1170 IF V<300 THEN 1230
- 1180 GOTO 1290
- 1190 PRINT"YOUR BOMBER ISN'T CAPABLE OF ATTAINING THAT VELOCITY."
- 1200 PRINT"INPUT AN AIRSPEED LESS THAN 900 FEET PER SECOND."
- 1210 PRINT" "
- 1220 GOTO 1150
- 1230 W4=W4+1
- 1240 IF W4=2 THEN 2250
- 1250 PRINT"IF YOUR VELOCITY ISN'T INCREASED IMMEDIATELY, YOUR BOMBER"
- 1260 PRINT"WILL FALL TO EARTH AND BE DESTROYED."
- 1270 PRINT" "
- 1280 GOTO 1140
- 1290 T=T+1
- 1300 B=A*3.14159/180
- 1310 Y=Y+V*SIN(B)
- 1320 IF Y>100 THEN 1390
- 1330 W5=W5+1
- 1340 IF W5=2 THEN 2290
- 1350 PRINT"IF YOUR ALITIUDE ISN'T INCREASED IMMEDIATELY TO A MIN-"
- 1360 PRINT"IMUM OF 100 FEET, A CRASH IS IMMINENT."
- 1370 PRINT" "
- 1380 GOTO 670
- 1390 X=X-V*COS(B)
- 1400 IF X<=0 THEN 2350
- 1410 E=X/(V*COS(B))
- 1420 PRINTTAB(30)"***STATS***"
- 1430 PRINT" "
- 1440 IF NOT(T=1)THEN 1470
- 1450 PRINTTAB(20)"ELAPSED TIME... 1 SECOND"
- 1460 GOTO 1480
- 1470 PRINTTAB(20)"ELAPSED TIME...";T;"SECONDS"
- 1480 IF NOT(A1=0)THEN 1510
- 1490 PRINTTAB(11)"PRESENT ANGLE COMMAND... 0 DEGREES"
- 1500 GOTO 1550
- 1510 IF A$="CLIMB"THEN 1540
- 1520 PRINTTAB(11)"PRESENT ANGLE COMMAND... DIVE,";-A1;"DEGREES"
- 1530 GOTO 1550
- 1540 PRINTTAB(11)"PRESENT ANGLE COMMAND... CLIMB,";A1;"DEGREES"
- 1550 IF A<0 THEN 1590
- 1560 IF A>0 THEN 1610
- 1570 PRINT TAB(17)"RESULTANT ANGLE... 0 DEGREES"
- 1580 GOTO 1620
- 1590 PRINTTAB(17)"RESULTANT ANGLE...";-A1;"DEGREES DIVING"
- 1600 GOTO 1620
- 1610 PRINTTAB(17)"RESULTANT ANGLE...";A;"DEGREES CLIMBING"
- 1620 PRINT TAB(15)"PRESENT VELOCITIY...";V;"FEET PER SECOND"
- 1630 PRINT TAB(24)"ALTITUDE...";Y;"FEET"
- 1640 PRINT TAB(14)"DISTANCE FROM SITE...";X;"FEET"
- 1650 PRINT TAB(7)"ESTIMATED TIME OF ARRIVAL...";E;"SECONDS"
- 1660 PRINT
- 1670 GOTO 540
- 1680 PRINT"BOMB DROPPED."
- 1690 T3=(SQR((V*SIN(B))^2+64.3693*Y)+V*SIN(B))/32.1847
- 1700 PRINT"TIME TO EXPLOSION... ";T3;"SECONDS"
- 1705 SOUND OFF:FOR S=4500 TO 1000 STEP-50:SOUND S,0.5:NEXT
- 1710 X=X-V*COS(B)*T3:XR=X-V*COS(B)*T3
- 1720 X=INT(X*100)/100
- 1730 IF X5>ABS(X5)THEN X5=ABS(X5):PRINT" "
- 1740 IF X<-20 THEN 1780
- 1750 IF X>20 THEN 1800
- 1760 PRINT"CONGRATULATIONS, YOU SCORED A PERFECT HIT.":PRINT"YOUR BOMB HIT LESS THAN 20 FEET FROM THE TARGET!!"
- 1765 SOUND OFF:PLAY"T200O3D8G8B8>D<B8>D2
- 1770 GOTO 2030
- 1780 PRINT"THE BOMB LANDED";-X;"FEET BEYOND THE TARGET'S CENTER."
- 1790 GOTO 1810
- 1800 PRINT"THE BOMB LANDED";X;"FEET IN FRONT OF THE TARGET'S CENTER."
- 1810 IF R=1 THEN 1850
- 1820 IF R=2 THEN 1870
- 1830 IF R=3 THEN 1890
- 1840 IF R=4 THEN 1910
- 1850 Z1=ABS(X)
- 1860 GOTO 2400
- 1870 Z2=ABS(X)
- 1880 GOTO 2420
- 1890 X3=ABS(X)
- 1900 GOTO 2440
- 1910 Z4=ABS(X)
- 1920 Z1=Z10(1):Z2=Z10(2):Z3=Z10(3):Z4=Z10(4)
- 1921 FOR M=1 TO 4
- 1922 FOR M1=4 TO 1 STEP-1
- 1923 IF Z10(M)<Z10(M1)THEN Z10(M)=X5
- 1924 IF M=M1 AND M=1 THEN 1930
- 1925 NEXT
- 1926 NEXT
- 1930 PRINT" "
- 1940 IF ABS(X)<=300 THEN 2000
- 1950 PRINT"DURING YOUR";R;"-PASS BOMBRUN, YOU FAILED TO EVEN"
- 1960 PRINT"THREATEN THE TARGET WITH A HIT. BETTER LUCK NEXT TIME."
- 1970 IF R$="NO"OR R$="N"THEN 2590
- 1980 GOTO 2040
- 1990 GOTO 2610
- 2000 PRINT"DURING YOUR";R;"-PASS BOMBRUN, YOU MANAGED TO STRIKE"
- 2010 PRINT"WITHIN";ABS(X);"FEET OF THE TARGET":PRINT"WHICH IS CONSIDERED THREATENING"
- 2020 PRINT" "
- 2030 IF R$="NO"OR R$="N"THEN 2590
- 2040 PRINT"WOULD YOU LIKE TO RELOAD AND PLAY AGAIN?"
- 2050 INPUT A$
- 2060 IF A$="NO"OR A$="N"THEN 2590
- 2070 IF A$="YES"OR A$="Y"THEN 2100
- 2080 PRINT"PLEASE REPLY `YES' OR `NO'."
- 2090 GOTO 2050
- 2100 R=0
- 2110 GOTO 290
- 2120 PRINT"YOU TORE THE WINGS OFF OF YOUR BOMBER BY EXCEEDING THE"
- 2130 PRINT"MAXIMUM ANGLE INPUT OF 15 DEGREES. NEXT TIME TAKE MY ADVISE"
- 2140 PLAY"T150O3D2DG2.D2GB2.D2GB2.D2GB2.D2GB2.G2D2DG2.
- 2150 H=1
- 2160 GOTO 1920
- 2170 PRINT"THE STEEP DIVE ANGLE DESIRED CAUSED AN IRREVERISIBLE NOSE-"
- 2180 PRINT"DIVE, RESULTING IN THE DESTRUCTION OF YOUR BOMBER."
- 2185 PLAY"T150O3D2DG2.D2GB2.D2GB2.D2GB2.D2GB2.G2D2DG2.
- 2190 H=1
- 2200 GOTO 1920
- 2210 PRINT"THE ENGINES OF YOUR BOMBER FAILED WHILE CLIMBING THE"
- 2220 PRINT"STEEP ANGLE INPUT DURING YOUR ANGLE COMMAND OPPORTUNITY."
- 2225 PLAY"T150O3D2DG2.D2GB2.D2GB2.D2GB2.D2GB2.G2D2DG2.
- 2230 H=1
- 2240 GOTO 1920
- 2250 PRINT"THE VELOCITY OF YOUR BOMBER WAS INSUFFICIENT TO SUPPORT"
- 2260 PRINT"ITS WEIGHT, AND CONSEQUENTLY IT CRASHED."
- 2265 PLAY"T150O3D2DG2.D2GB2.D2GB2.D2GB2.D2GB2.G2D2DG2.
- 2270 H=1
- 2280 GOTO 1920
- 2290 PRINT"YOUR BOMBER FAILED TO MAINTAIN THE LOW ALTITUDE YOU DE-"
- 2300 PRINT"SIRED AND SOON CRASHED."
- 2305 PLAY"T150O3D2DG2.D2GB2.D2GB2.D2GB2.D2GB2.G2D2DG2.
- 2310 PRINT"BETTER LUCK NEXT TIME."
- 2320 H=1
- 2330 GOTO 1920
- 2340 '
- 2350 PRINT"YOUR BOMBER JUST PASTED UP THE TARGET, AND NEEDLESS TO":PRINT"SAY, YOU NO LONGER THREATEN ITS EXISTANCE THIS RUN."
- 2360 PRINT" "
- 2370 IF R=2 THEN 2420
- 2380 IF R=3 THEN 2440
- 2390 IF R=4 THEN 1920
- 2400 Q$=" SECOND "
- 2410 GOTO 2450
- 2420 Q$=" THIRD "
- 2430 GOTO 2450
- 2440 Q$=" FORTH AND FINAL "
- 2450 IF R>1 THEN 2490
- 2460 PRINT"YOU HAVE THUS FAR COMPLETED 1 RUN. WOULD YOU LIKE TO"
- 2470 PRINT"MAKE ANOTHER PASS";
- 2480 GOTO 2510
- 2490 PRINT"YOU HAVE THUS FAR COMPLETED ";R;"RUNS. WOULD YOU LIKE TO"
- 2500 PRINT"MAKE ANOTHER PASS";
- 2510 INPUT R$
- 2520 IF R$="YES"OR R$="Y"THEN 2560
- 2530 IF R$="NO"OR R$="N"THEN 1920
- 2540 PRINT"SIMPLY REPLY `YES' OR `NO'"
- 2550 GOTO 2510
- 2560 PRINT"YOUR PLANE HAS CIRCLED, AND IS NOW IN POSITION TO MAKE"
- 2570 PRINT"ITS";Q$;"PASS."
- 2580 GOTO 330
- 2590 PRINT"LOOK OVER THE PHYSICS LAWS GOVERNING FALLING BODIES,"
- 2600 PRINT"AND RETURN TO PLAY AGAIN SOON."
- 2610 END
-